






/* =============================================================================
PROJET           : c-social-network
NOM DU FICHIER   : sortie.h.h
OBJET            : Header du module sortie.
--------------------------------------------------------------------------------
DATE DE CREATION : 19/05/10
AUTEUR           : Joris PUECHELONG
--------------------------------------------------------------------------------
MODIFICATIONS (   n) date - auteur - description )
    1) 19/05/10 - Joris PUECHLONG - ecriture fonctions
	2) 24/05/10 - Benjamin MICHEL - put_chemin put_len_chemin
============================================================================= */
#include <stdio.h>
#include <stdlib.h>
#include "sortie.h"

/*
Cre un fihcier txt, le remplis avec les informations necesaires
sur les composantes connexes, puis le referme
*/
static FILE* OPENF(char * nomfichier){
    /*fichier*/
    FILE * fichier;
    /* Ouverture fichier en mode ecriture */
    return fopen(nomfichier, "w");
}

/*=============================================================================*/
/*=============================================================================*/
/*
Recupere le nombre de cfc, et l'ecris dans la premiere ligne di fichier
*/
static void PUT_NB_CFC(int nb_cfc, FILE *fichier){
	/* affiche le nombre de cfc*/
	fprintf(fichier, "%d\n", nb_cfc);			/* ecris nb_cfc, et passe a la ligne */
}

/*=============================================================================*/
/*=============================================================================*/


static void PUT_CFC(t_liste *liste, FILE *fichier){
	if ( !f_liste.is_vide(liste) ){/* j'ecris le premier element sans espace ni virgule */
        fprintf(fichier, "%d", f_personne.get_id(f_liste.get_pers(liste)));
	}

	liste = f_liste.get_next( liste );

	/* pour les autres, je commence par une virgule et un espace pour bien separer chaque id
	et je parcours ma liste */
	while ( !f_liste.is_vide(liste) ){
		fprintf(fichier, ", %d", f_personne.get_id(f_liste.get_pers(liste)));
		liste = f_liste.get_next(liste);								/* passe au suivant */
    }
    fprintf(fichier, "\n"); 				/* je passe a la ligne dans mon fichier car j'ai fini de remplir une ligne de CFC */
}



static void PUT_LEN_CHEMIN(int len, FILE *fichier){
	/*met la longueur du chemin*/
	fprintf(fichier, "%d : ", len);
}

static void PUT_CHEMIN(t_liste *liste, FILE *fichier){
	if ( !f_liste.is_vide(liste) ){/* j'ecris le premier element sans espace ni virgule */
        fprintf(fichier, "%d", f_personne.get_id(f_liste.get_pers(liste)));
	}

	liste = f_liste.get_next( liste );

	/* pour les autres, je commence par une virgule et un espace pour bien separer chaque id
	et je parcours ma liste */
	while ( !f_liste.is_vide(liste) ){
		fprintf(fichier, ", %d", f_personne.get_id(f_liste.get_pers(liste)));
		liste = f_liste.get_next(liste);								/* passe au suivant */
    }
    fprintf(fichier, "\n"); 				/* je passe a la ligne dans mon fichier car j'ai fini de remplir une ligne de CFC */

}


/*
initialisation de la structure f_personne pour usage externe
*/
struct _SORTIE f_sortie = {
    OPENF, PUT_NB_CFC, PUT_CFC, PUT_LEN_CHEMIN, PUT_CHEMIN
};

